Personal computing devices, including, for example, desktop computers, laptop computers, tablets, smart phones, and personal digital assistants, typically include or can be coupled to various interface devices, such as a keyboard, mouse, and gaming controller. Generally, some external input (e.g., a human touch or movement) causes the interface device to output predetermined data or control signals to the computing device. The data or control signals are then received by software executing on the computing device, which cause the computing device to react in a manner in accordance with the software.
Some interface devices are adaptive and may be configured by a user to alter the particular outputs generated in response to particular inputs on the interface device. Nevertheless, configuring an adaptive interface device may require specialized software executing on the computing device and bi-directional communication with the adaptive interface device to enable the computing device to overwrite data on the adaptive interface device.
Accordingly, there is a need for improved systems and methods for programming of interface devices.